package factory;

/**
 * @Author: linKe
 * @Date: 2022/1/15 10:32
 * @FileName: PizzaStore
 * @version: 1.0
 * @Description: 抽象类    披萨商店
 */
public abstract  class PizzaStore {
    protected Pizza pizza;

    /**
     * 下订单
     * @param type 披萨类型
     * @return  结果
     */
    public Pizza order(String type) {
        // 判断是芝士还是酱
        pizza = createPizza(type);
        // 烤制时间
        pizza.bake();
        // 切
        pizza.cut();
        // 包装
        pizza.box();
        System.out.println("您的披萨做好了");
        return pizza;
    }

    /**
     * 生成披萨，抽象工厂方法
     * @param type 披萨类型
     * @return  结果
     */
    protected abstract Pizza createPizza(String type);
}
